package com.mdb.open.common.enums.trade.status;
/*
 * Copyright (C), 2017-2019 澳发科技(MDB)
 * FileName: AvailableStatusEnum.java
 * Author:   符楚
 * Date:     2019-10-31 10:44
 * History:
 * <author>          <time>          <version>          <desc>
 * 符楚               2019-10-31          V1.00             新建
 * -----------------------------------------------------------
 * 作者姓名           修改时间           版本号            描述
 */

import com.mdb.bc.api.enums.ApiEnum;

/**
 * 可用状态<br>
 * <br>
 *
 * @author 符楚
 * @Date 2019-10-31 10:44
 */
public enum AvailableStatusEnum implements ApiEnum<String> {

    /**
     * 正常使用
     */
    NORMAL("正常"),

    /**
     * 风控拒绝, 商户停用
     */
    STOP("不可用"),

    /**
     * 风控审核中
     */
    AUDIT("审核中");


    private String text;

    AvailableStatusEnum(String text) {
        this.text = text;
    }

    @Override
    public String getValue() {
        return name();
    }

    @Override
    public String getText() {
        return this.text;
    }


    public static AvailableStatusEnum convert(MerchantStatusEnum statusEnum, MerchantApproveStatusEnum riskStatusEnum) {

        //正常使用
        if (statusEnum.equals(MerchantStatusEnum.NORMAL) && riskStatusEnum.equals(MerchantApproveStatusEnum.MODEL_APPROVED)) {
            return AvailableStatusEnum.NORMAL;
        }

        //风控拒绝, 商户停用
        if (statusEnum.equals(MerchantStatusEnum.STOP) || riskStatusEnum.equals(MerchantApproveStatusEnum.MODEL_REJECT) || riskStatusEnum.equals(MerchantApproveStatusEnum.AML_REJECT)) {
            return AvailableStatusEnum.STOP;
        }

        //风控审核中
        if (riskStatusEnum.equals(MerchantApproveStatusEnum.PROCESSING) || riskStatusEnum.equals(MerchantApproveStatusEnum.AML_SUCCESS)) {
            return AvailableStatusEnum.AUDIT;
        }

        return AvailableStatusEnum.STOP;
    }
}
